In digital networks, voice is encoded with a PCM (Pulse Code Modulation) coding system which provides a constant bit rate of 64 Kbps (thousand bits per second). This bit rate corresponds to the sampling of the voice analog signal at the rate of 8,000 times per second, each sample being represented by 8 bits. In order to transport this voice signal across a packet or cell switching network, 8-bit samples are assembled into packets.
Packetized systems permit multiplexing of voice and data traffic from several users so that they may share transmission bandwidth and switching resources. A packet header includes the necessary control information allowing a wide range of coding schemes for voice and data and thus easy integration of multimedia traffic (voice, video and data). The packet switching networks considered for the present invention are either packet based such as Frame Relay or cell based such as Asynchronous Transfer Mode (ATM) networks. One major requirement in such networks is the efficient management of the bandwidth allocation in order to reduce the transmission costs. One way of saving bandwidth is to reduce the bit rate required from the 64 Kbps standard rate by applying compression techniques. Many voice compression algorithms rely on the fact that a voice signal has considerable redundancy (i.e. the general characteristics of the next few samples can be predicted from the last few). One common coding scheme based on prediction, which reduces the data rate to 32 Kbps without measurable loss of quality, is called Adaptive Differential PCM (ADPCM). In concept ADPCM encodes each sample as the difference between it and the last sample, rather than as an absolute amplitude value. Another compression technique is the analysis by synthesis method, an example of which is the Global System for Mobile communications (GSM) standard for European Cellular Telecommunications System. By using the GSM compression technique, the bit rate of a voice data stream can be reduced from the standard 64 Kbps to around 13 Kbps. As well as saving bandwidth, the compression algorithm must be efficient in terms of quality, which means that a listener must not detect the difference between an original analog signal and one which has been encoded and later decoded.
Another way of saving bandwidth is to detect in the voice data stream when there is no actual speech (i.e. silence) and just stop sending data during the gaps. This silence removal function consists of detecting the silence and halting transmission of voice packets at the transmitting side of the network and generating a background noise instead of silence at the receiving side.
Voice communication facilities, such as a PBX (Private Branch exchange) attached to a transmitting node (i.e. an access node of a digital network), may transmit repetitive patterns, )e.g. when a voice channel is idle). It is possible to save bandwidth by detecting the presence of repetitive patterns over the communication channel and stop the transmission of the corresponding data packets from the transmitting node to a receiving node of the digital network. At the receiving node the repetitive patterns should be regenerated in order to maintain the integrity of the data stream transmitted toward a destination communication facility such as a second PBX attached to the digital network.
Such techniques already exist in the background art. One simple technique uses a static configuration of the repetitive pattern to be detected in the transmitting side of the network. Then, once this pattern has been detected and the idle state of the voice channel confirmed, the packet transmission to the receiving node is interrupted. At the receiving side of the network, the repetitive pattern is regenerated and inserted in the output samples stream. A disadvantage of this technique is that if the binary value of the repetitive pattern changes (i.e. differs from the configured value), as in case of a different protocol used by the emitting device (e.g. PBX), the transmission of the repetitive pattern is not stopped unless its value is reconfigured in the repetitive pattern detection system. Thus, this technique has the drawback of being protocol dependent.
A technique that overcomes the above problem of protocol dependency consists of sending, after detection of a repetitive pattern in the receiving side, a control packet which provides the receiving side with the repetitive pattern value to be played out in the output samples stream, after that the transmission is interrupted. This technique requires a specific packet header format for carrying out the control packet recognition. This type of format is not available for ATM Adaptation Layer of type 0 and 1 (AAL0, AAL1).
Still another technique is disclosed in U.S. Pat. No. 5,020,058 issued on May 28, 1991 to B. D. Holden et al. entitled "Packet voice/data communication system having protocol independent repetitive packet suppression". According to this patent, the repetitive pattern suppression technique utilizes a compression/expansion algorithm. On the compression side, the repetitive pattern suppression (RPS) technique looks for repeating patterns in an incoming data stream. The RPS compression side suppresses the transmission of entire packets when a repeating pattern has been established in the last sample of the previous packet, and then is found to repeat throughout the current packet. Whenever a packet does not arrive in time to be played out to the user, the expansion part of the RPS algorithm fills (replicates) the resulting hole in the data stream with the last sample from the previously received packet. This latter technique does not require control packet and is protocol independent but presents some vulnerability in case of dropped packet errors. Indeed, the RPS algorithm disclosed in that patent does not allow, at the receiving side, for the difference between a suppressed packet and a dropped packet during transmission, and the fill pattern for the missing packet is derived from whatever sample pattern lands at the end of the previous packet.
Furthermore, none of the techniques presented above address the case of repetitive pattern removal when voice is compressed, using for example a GSM algorithm. It is still possible to detect repetitive patterns in the incoming encoded packets at the transmitting side of the network and stop the transmission of the next repetitive packets. But, after the decoding of a repetitive packet at the receiving side, the repetitive pattern binary value obtained has a very low probability of complying with the original repetitive pattern before it was encoded and transmitted. This is due to the nature of a compression algorithm such as GSM, which was developed for speech but not for data. As the repetitive pattern value can provide information to the destination device such as information on the state of the connection (e.g. idle state), it is necessary not to corrupt the value of the repetitive pattern during the encoding/decoding process.